package com.hc.dfs.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;

import com.hc.dfs.service.MainService;
import com.hc.dfs.service.internet.Service;
import com.hc.dfs.tool.Tool;
/**
 * 基础的activity类
 * @author kok
 *
 */
public abstract class BaseActivity extends Activity implements OnClickListener{
//	public Service service=new Service();
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		String strVer=android.os.Build.VERSION.RELEASE;//获取当前系统版本
    	strVer=strVer.substring(0,3).trim();
    	float fv=Float.valueOf(strVer);
    	getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams. FLAG_FULLSCREEN); 
    	//检查网络，网络正常则执行init方法，并将当前activity压入activity栈
    	checkNetwork();
    	
//    	if(fv>2.3)//如系统版本大�?.3则执行以下设置防止网络访问异常
//    	{
//    	StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
//    	.detectDiskReads()
//    	.detectDiskWrites()
//    	.detectNetwork() // 这里可以替换为detectAll() 就包括了磁盘读写和网络I/O
//    	.penaltyLog() //打印logcat，当然也可以定位到dropbox，文件保存相应的log
//    	.build());
//    	StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
//    	.detectLeakedSqlLiteObjects() //探测SQLite数据库操作
//    	.penaltyLog() //打印logcat
//    	.penaltyDeath()
//    	.build()); 
//    	}

    	
    	this.requestWindowFeature(Window.FEATURE_NO_TITLE);
	}

	
	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
	}

	//检查网络
	public void checkNetwork(){
		//获取网络状态
        Boolean chkNet = Tool.checkNetWorkStatus(this);
        if(chkNet){
        	//启动初始化任务
        	init();
        	//将当前activity压入栈内
        	MainService.allActivities.add(this);
        }else{
        	Tool.alerNetErr(this);
        	return;
        }
	}
	
	//activity初始化时启动的任务
	public abstract void init();
	
	//更新UI
	public abstract void refresh(Object ...param);
	
}

